//package pl;
public class Simbolo {

    public String nombre;
    public int varMetodoClase;
    public int tipo;
    public boolean emprat;
    public TablaSimbolos tabla;
    // Clases de símbolos:
    public static final int VAR = 1,
            METODO = 2,
            CLASE = 3;
    // Tipos de datos:
    public static final int ENTERO = 1,
            REAL = 2,
           // NO_MAIN = 3,
            ES_MAIN = 4;

    public Simbolo(String nombre, int tipoSimbolo, int tipo, TablaSimbolos tabla) {
        this.nombre = nombre;
        this.varMetodoClase = tipoSimbolo;
        this.tipo = tipo;
        this.tabla = tabla;
        if (tipoSimbolo==3/*CLASS*/ || tipo==4 /*main*/)
            this.emprat=true;
        else
            this.emprat = false;
    }
     public Simbolo(Simbolo sim) {
        this.nombre = sim.nombre;
        this.varMetodoClase = sim.varMetodoClase;
        this.tipo = sim.tipo;
        this.emprat = sim.emprat;
        this.tabla = sim.tabla;
    }

    public void setEmprat()
    {
        emprat = true;
    }
    public boolean esEmprat()
    {
        return emprat == true;
    }
     public String getNombre()
    {
        return nombre;
    }
    public boolean esVAR(){
        return varMetodoClase==1;
    }
     public boolean esMETODO(){
        return varMetodoClase==2;
    }
      public boolean esCLASE(){
        return varMetodoClase==3;
    }
       public boolean esEntero(){
        return tipo==1;
    }
        public boolean esReal(){
        return tipo==2;
    }
        public String toString(){
            String sal= "(" + nombre + " , " + varMetodoClase + " , "+ tipo +" , ";
            if (esEmprat())
            {
                sal += "emprat";
            }
            return sal+=")";
        }
}
